package companyCategory;

import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Partitioner;

import java.util.HashMap;

public class CityComPartition extends Partitioner<Text, Text> {

    public static HashMap<String, Integer> cityMap = new HashMap<>();
    static {
        cityMap.put("北京", 0);
        cityMap.put("上海", 1);
        cityMap.put("广州", 2);
        cityMap.put("深圳", 3);
        cityMap.put("天津", 4);
        cityMap.put("武汉", 5);
        cityMap.put("南京", 6);
    }

    @Override
    public int getPartition(Text key, Text value, int numPartitions) {
        // 根据map输出的key（城市名称）得到分区号
        Integer code = cityMap.get(key.toString());

        if (code!= null) {
            return code;
        } else {
            // 如果key对应的城市不在数据字典里面，分到其他分区（这里假设为13号分区）
            return 7;
        }
    }
}
